package com.sql.connection;

import java.sql.Connection;

/**
 * @Auther: zch
 * @Date: 2019/6/26 14:58
 * @Description: 连接工厂的行为: 1 对内 初始化 并管理连接
 *                             2 对外提供获取连接的接口
 */
public class ConnectionFactory extends ConnectionPool {

    public ConnectionFactory(DataSourceConfig dataSourceConfig) {
        init(dataSourceConfig);
    }

    public void init(DataSourceConfig dataSourceConfig){
        super.init(dataSourceConfig);
    }
    /**
     * 获取连接。
     * @return
     */
    public SqlConnection getConnection() {
      return  getAvailableConnection();
    }
    private SqlConnection getAvailableConnection(){
        for(SqlConnection connection:connectionContext){
            if(!connection.isClose()){
                return connection;
            }
        }
        throw new RuntimeException("暂无可用连接。");
    }
}
